package com.shuang.greed11;

import java.util.Arrays;
import java.util.LinkedList;

public class ReconstructQueue {
    //有两个维度 h和k分开考虑
    //先按身高从大到小排序（身高一样的 按照k 从小到大排序（高的 k小的站前面））
    //再从身高从大到小开始选择 根据 k属性的值就是索引位置 插入元素到que中
    public int[][] reconstructQueue(int[][] people) {
        //排序people
        Arrays.sort(people, (a, b) -> {
            if (a[0] == b[0]) {
                //身高一样 按照k从小到大（升序）
                return a[1] - b[1];
            }
            //身高从大到小排（降序）
            return b[0] - a[0];
        });

        //定义一个que集合
        LinkedList<int[]> que = new LinkedList<>();

        //插入元素到que集合中
        for (int[] p : people) {
            //Linkedlist.add(index, value)，會將value插入到指定index裡。
            que.add(p[1], p);
        }
        //将集合转化成数组返回
        return que.toArray(new int[people.length][]);
    }
}
